package com.jzo2o.market.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.market.model.domain.Activity;
import com.jzo2o.market.model.dto.request.ActivityQueryForPageReqDTO;
import com.jzo2o.market.model.dto.request.ActivitySaveReqDTO;
import com.jzo2o.market.model.dto.response.ActivityInfoResDTO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author itcast
 * @since 2023-09-16
 */
public interface IActivityService extends IService<Activity> {

    /**
     * 新增或修改一个优惠券活动信息
     * @param dto
     */
    void saveActivity(ActivitySaveReqDTO dto);

    /**
     * 分页查询优惠卷接口
     * @param dto
     * @return
     */
    PageResult<ActivityInfoResDTO> pageQuery(ActivityQueryForPageReqDTO dto);

    ActivityInfoResDTO getActivityById(Long id);

    /**
     * 撤销活动
     * @param id
     */
    void revokeActivity(Long id);

    /**
     * 优惠活动定时预热
     */
    void preHeat();

    /**
     * 用户端抢券列表分页接口
     * @param tabType
     * @return
     */
    List<ActivityInfoResDTO> queryForPage(Integer tabType);

    /**
     * 获取当前活动状态
     * @param x
     * @return
     */
    Integer getCurrentStatus(ActivityInfoResDTO x);

    boolean decrStockNum(Long activityId);
}
